home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / comm / fido / mm_autoreply.lha / MM_AutoReply.rexx < prev   
OS/2 REXX Batch file  |  1995-08-20  |  4KB  |  170 lines

  1. /*
  2. ** $VER: MM_AutoReply V1.0 (21.08.95)
  3. **
  4. ** Written by Reinaldo Erdey
  5. **
  6. */
  7.  
  8. options results
  9.  
  10. PARSE ARG Export
  11.  
  12. if Export = '?' then Call Usage
  13.  
  14. /* ---------------------------------------------------------------------- */
  15. /* schecken auf Host */
  16. /* ---------------------------------------------------------------------- */
  17.  
  18. if ~show(p,"MAILMANAGER") then
  19.     do
  20.        Say d2c(10)||'Warning: MailManager is not present !'||d2c(10)
  21.        Exit
  22. end
  23.  
  24. /* ---------------------------------------------------------------------- */
  25. /* Variablen Init */
  26. /* ---------------------------------------------------------------------- */
  27.  
  28. Address 'MAILMANAGER'
  29.  
  30. MM.Area         = 'Matrix'
  31. MM_GetSysop Sysop
  32. MM_GetAddrs DomainAdr
  33.  
  34. MM.LogLevel        = 2
  35. MM.PrgName        = 'AutoReply V1.0'
  36.  
  37. FromName        = '#?'
  38. ToName        = Sysop
  39. Subject        = '#?'
  40. InFlags        = 'UNR SENT IMP !READ'
  41.  
  42. MaxQuote        = 10
  43. ReplyFlags        = '!UNR'
  44.  
  45. /* ---------------------------------------------------------------------- */
  46. /* Main Programm */
  47. /* ---------------------------------------------------------------------- */
  48.  
  49. MAIN:
  50.  
  51. MM_SearchMsgs MM.Area Msg '"'FromName'"' '"'ToName'"' '"'Subject'"' '"' '"'InFlags
  52.  
  53. DO M = 0 FOR MSG.Count
  54.        IF MSG.count >=1 THEN Call AutoMsg(Msg.M)
  55. End
  56.  
  57. Exit
  58.  
  59. /* ---------------------------------------------------------------------- */
  60. /* Eine Message kam an und lesen */
  61. /* ---------------------------------------------------------------------- */
  62.  
  63. AutoMsg:
  64.  
  65. PARSE ARG MsgNr
  66.  
  67. MM_ReadMsg MM.Area MsgNr Tmp
  68.  
  69. MM_EditMsgFlags MM.Area MsgNr 'ReplyFlags'
  70.  
  71. /* ---------------------------------------------------------------------- */
  72. /* -- Keine Antwort an AREAFIX oder RAID -- */
  73.  
  74. If upper(Tmp.FROM) = 'AREAFIX' | upper(Tmp.FROM) = 'RAID' then Return
  75.  
  76. /* ---------------------------------------------------------------------- */
  77. /* .... und antworten */
  78. /* ---------------------------------------------------------------------- */
  79.  
  80. Tmp.FILE = 'T:MM.TRANS'
  81.  
  82. c = 0
  83. MM.User.c    = ' > --- ACHTUNG !!! - MESSAGE GENERATET BY 'upper(MM.PrgName)' - ACHTUNG !!! --- <'
  84. c = c + 1
  85. MM.User.c    = ''
  86. c = c + 1
  87. MM.User.c    = 'Hi 'SUBWORD(Tmp.FROM,1,1)' !'
  88. c = c + 1
  89. MM.User.c    = ''
  90. c = c + 1
  91. MM.User.c    = Tmp.FROM' schrieb am 'Tmp.DATE' an 'Tmp.TO':'
  92. c = c + 1
  93. MM.User.c    = ''
  94. c = c + 1
  95.  
  96. IF Tmp.TEXT.count >MaxQuote Then Tmp.TEXT.count = MaxQuote
  97. IF Tmp.TEXT.count >1 THEN DO
  98.   Cont = 0
  99.   DO b = 0 FOR Tmp.TEXT.count
  100.     MM.User.c = ' 'SUBSTR(SUBWORD(Tmp.FROM,1,1),1,1)''SUBSTR(SUBWORD(Tmp.FROM,2,1),1,1)'> 'Tmp.TEXT.b
  101.     c = c + 1
  102.     Tmp.TEXT.count = Tmp.TEXT.b
  103.     Cont = Cont + 1
  104.   END
  105.   Tmp.TEXT.count = Cont
  106. END
  107.  
  108. MM.User.c    = ''
  109. c = c + 1
  110. MM.User.c    = 'Ich habe deine Message zum Thema "'Tmp.SUBJ'" erhalten. !'
  111. c = c + 1
  112. MM.User.c    = ''
  113. c = c + 1
  114. MM.User.c    = 'Im moment ist 'Tmp.To' nicht erreichbar, sollte deine Message eine Antwort'
  115. c = c + 1
  116. MM.User.c    = 'erfordern, warte umbedigt erst das Reply vom 'SUBWORD(Tmp.To,1,1)' ab.'
  117. c = c + 1
  118. MM.User.c    = ''
  119. c = c + 1
  120. MM.User.c   = 'SCHREIBE BITTE KEINE WEITEREN MESSAGEN ZUM THEMA:'
  121. c = c + 1
  122. MM.User.c    = '"'Tmp.SUBJ'"'
  123. c = c + 1
  124. MM.User.c    = ''
  125. c = c + 1
  126. MM.User.c    = 'Sobald wie moeglich wird 'SUBWORD(Tmp.To,1,1)' diese Message beantworten.'
  127. c = c + 1
  128. MM.User.c    = ''
  129. c = c + 1
  130. MM.User.c    = 'mit gruss 'SUBWORD(Tmp.To,1,1)' --- ['MM.PrgName'] ---'
  131. c = c + 1
  132. MM.User.Count = c
  133.  
  134. MM_WriteStem Tmp.FILE 'MM.User'
  135.  
  136. CALL WriteLog(MM.PrgName '- Reply to 'Tmp.FROM' 'Tmp.FROMADDR)
  137.  
  138. Tmp.TO        = Tmp.FROM
  139. Tmp.FROM      = ToName
  140. Tmp.TOADDR      = Tmp.FROMADDR
  141. Tmp.FROMADDR = DomainAdr.0
  142. Tmp.SUBJ      = 'RE: 'Tmp.SUBJ
  143. Tmp.FLAGS      = 'PVT'
  144.  
  145. MM_WriteMsg MM.Area Tmp
  146. If upper(Export) ~= 'NO' then MM_Export MM.Area
  147. MM_DeleteFile Tmp.FILE
  148. Return
  149.  
  150. /* ---------------------------------------------------------------------- */
  151. /* Log schreiben */
  152. /* ---------------------------------------------------------------------- */
  153.  
  154. WriteLog: PROCEDURE EXPOSE MM.
  155.  
  156. PARSE ARG Testo
  157. MM_WriteLog 'Testo' MM.LogLevel
  158. RETURN
  159.  
  160. /* ---------------------------------------------------------------------- */
  161. /* Usage ausgeben */
  162. /* ---------------------------------------------------------------------- */
  163.  
  164. USAGE:
  165. Say d2c(10)||'USAGE: rx MM_AutoReply.rexx [No/S]'
  166. Say '       Beim Parameter NO wird kein Export ausgefuehrt, sonnst immer.'||d2c(10)
  167. exit
  168. /* ---------------------------------------------------------------------- */
  169.  
  170.